In a 3D graphics system, typically a large amount of memory is required to hold the display information for what is currently being displayed on the screen and separate information for the next frame. For example, in a system with graphics resolution of 320×240 at 16 bits/pixel, at least 153 KB of memory is required to hold the current frame and another 153 KB of memory is required for the next frame that gets processed while the current screen is being displayed. The frame buffer size is critical for the performance of a 3D graphics system as loading and unloading textures from the main memory may take a very long time. Therefore, it is desirable to provide as much free space in the frame buffer as possible in order to store textures and CLUTs (color lookup tables). On the other hand, a large frame buffer may directly affect the cost and power consumption of the system which are both critical factors to consider in a mobile electronics system such as PDAs (personal digital assistants), cell phones, mobile gaming systems, and the like.
Conventionally, CLUTs are used to reduce the size of textures. Instead of using the full 16 bits to represent the texture pixel data, a look up table may be used to assign colors that are going to be used for textures. This may reduce the maximum number of colors that can be used in a single texture and may also dramatically reduce the amount of memory needed for textures. However, CLUTs may not change the fact that there need be separate memory space for display and drawing regions in a frame buffer.
Tile based algorithms may also be used in some graphics systems to reduce the display and drawing region size. This method divides the screen into multiple tiles and draws only the pixels that fall into the working tile. Although tile based algorithms work well to reduce the memory size, it may also introduce a lot of inefficiencies because the GPU (graphics processing unit) may need to traverse through the list of drawing commands for the whole screen as many times as the number of tiles defined.
Thus, it would be desirable to provide a method and apparatus for efficiently reducing the frame buffer size in a graphics system.